package com.waimai.app.qa.webdriver;

import static io.appium.java_client.android.AndroidKeyCode.BACKSPACE;
import static io.appium.java_client.android.AndroidKeyCode.KEYCODE_MOVE_END;

import java.util.List;

import org.openqa.selenium.WebElement;

import com.waimai.app.qa.util.Logger;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;

public class EditTextOperate {
	
	public static AndroidDriver<WebElement> driver = (AndroidDriver<WebElement>) AppDriver.driver;

	
    /**
     * 往控件输入字符串
     *
     * @param ae  要输入的控件
     * @param str 要输入的字符串
     */
    public void input(AndroidElement ae, String str) {
        if (ae == null) {
            Logger.log("控件为空,输入内容失败:" + str);
        } else {
            ae.sendKeys(str);
        }
    }
    
	/**
	 * 在输入框中，输入文案
	 */
	public static void InputText(String str){
		try{
			driver.getKeyboard().sendKeys(str);
			Logger.log("输入文案：" + str);
		}catch(Exception e){
			Logger.log("输入失败：" + str);
		}
	}
	
    /**
     * 获取当前界面的所有EditText，并依次输入内容
     *
     * @param str 要输入的数组
     */
    public void inputManyText(String... str) {
        List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
        for (int i = 0; i < str.length; i++) {
            textFieldsList.get(i).click();
            clearText(textFieldsList.get(i));   //清除内容
            textFieldsList.get(i).sendKeys(str[i]);
        }
    }
	
    /**
     * 逐字删除编辑框中的文字
     *
     * @param webElement 文本框架控件
     */
    public void clearText(WebElement webElement) {
        String text = webElement.getText();
        //跳到最后
        driver.pressKeyCode(KEYCODE_MOVE_END);
        for (int i = 0; i < text.length(); i++) {
            //循环后退删除
            driver.pressKeyCode(BACKSPACE);
        }
    }
    
	/**
	 * 删除输入框中的文案
	 */
	public static void deleteEditText(){
		for(int i = 0; i < 50; i++){
			driver.longPressKeyCode(67);
		}
	}
}
